package com.example.demo.service.report;

import com.example.demo.vo.remark.RemarkVO;
import com.example.demo.vo.report.ReportInfoVO;
import com.example.demo.vo.report.ReportVO;
import com.example.demo.vo.ResultVO;
import com.example.demo.vo.report.SimilarReportVO;

import java.util.List;

public interface ReportService {

    ResultVO<Integer> getMyRid(int tid);

    ResultVO<ReportVO> getReportByRid(int rid);

    ResultVO<List<ReportVO>> getReportByTask(int tid,int pageNum);

    ResultVO<ReportVO> getReportByWorkerTask(String username,int tid);

    ResultVO<ReportInfoVO> uploadReport(ReportInfoVO reportInfoVO);

    ResultVO<List<RemarkVO>> getRemarkByRid(int rid, int pageNum);

    ResultVO<List<ReportVO>> getRemarkableReportListByTaskId(int tid,int uid,int pageNum);

    ResultVO<List<SimilarReportVO>> getReportWithSimilarity(int tid, int uid);

    ResultVO<List<ReportVO>> getReportWithScore(int tid,int uid);

    int getCoreportNumByRid(int rid);

    int getSimilarityNumByRid(int rid,int min,int max);

    int getRecentReportNumByUser(String username);

    int updateAvgScore(int rid,int score,double active);

    //获取报告的相似报告
    ResultVO<List<ReportVO>> getSimilarityReportListByRid(int rid,int min,int max,int pageNum);

    int getBugNumByReport(int rid);

    String getAllBugByRid(int rid);
}
